﻿using Black.Minecraft.Editor.Models;
using Black.Minecraft.Editor.ViewModels.Core;

namespace Black.Minecraft.Editor.ViewModels.DataModels
{
    /// <summary>
    /// DataModel pour la définition d'un enchantement
    /// </summary>
    public class EnchantDefDataModel : BaseViewModel
    {
        #region Propriétés

        /// <summary>
        /// Obtient ou définit l'identifiant
        /// </summary>
        public short Id
        {
            get
            {
                return (this._data.Id);
            }
            set
            {
                if (this._data.Id != value)
                {
                    this._data.Id = value;
                    this.OnPropertyChanged();
                }
            }
        }

        /// <summary>
        /// Obtient ou définit le nom
        /// </summary>
        public string Label
        {
            get
            {
                return (this._data.Label);
            }
            set
            {
                if (this._data.Label != value)
                {
                    this._data.Label = value;
                    this.OnPropertyChanged();
                }
            }
        }

        /// <summary>
        /// Obtient ou définit le niveau maximum
        /// </summary>
        public short MaxLevel
        {
            get
            {
                return (this._data.MaxLevel);
            }
            set
            {
                if (this._data.MaxLevel != value)
                {
                    this._data.MaxLevel = value;
                    this.OnPropertyChanged();
                }
            }
        }

        #endregion

        #region Variables d'instances

        private Enchant _data;

        #endregion

        #region Constructeurs

        /// <summary>
        /// Constructeur de la classe
        /// </summary>
        /// <param name="data">Source de donnée</param>
        public EnchantDefDataModel(Enchant data)
            : base()
        {
            this._data = data;
        }

        #endregion

        #region Fonctions publiques

        /// <summary>
        /// Retourne la source de donnée
        /// </summary>
        /// <returns>Source de donnée</returns>
        public Enchant GetData()
        {
            return (this._data);
        }

        #endregion
    }
}
